#include<interrupt.h>
#include<stdio.h>
#include<keyboard_map.h>
#include<driver.h>

#define	TASTO_CAPS		0x3A
#define	TASTO_INVIO		0x1C
#define	TASTO_SHIFT		0x2A
#define	TASTO_BACK		0x0E
#define	TASTO_SPACE		0x39
#define	TASTO_TAB		0x0F
#define	TASTO_SU			0x48
#define	TASTO_GIU		0x50
#define	TASTO_DESTRA	0x4D
#define	TASTO_SINISTRA	0x4B
#define	TASTO_CANC		0x0D

int maiuscolo;
void init_keyboard() {
	maiuscolo=0;
}

void input_tastiera() {
	int scan=in_port(0x60); 
	if(scan>0) { 
		switch(scan) { 
			case TASTO_TAB:
				printk("   "); break;
			case TASTO_SU:
				printk("SU"); break;
			case TASTO_GIU:
				printk("GIU"); break;
			case TASTO_DESTRA:
				printk("DESTRA"); break;
			case TASTO_SINISTRA:
				printk("SINISTRA"); break;
			case TASTO_INVIO: 
				invio_premuto=1; newk(); break;
			case TASTO_CAPS: 
				if(maiuscolo==1) maiuscolo=0;				
				else maiuscolo=1;
				break;
			case TASTO_SPACE: 
				tasto_premuto=1; lettera=' '; break;
			case TASTO_BACK: 
				tasto_premuto=1; back_premuto=1; break;
			default: tasto_premuto=1; 
				if(maiuscolo==1) lettera=caps_map_ita[scan];
				else lettera=map_ita[scan];
				break;
		}
	}
	
}



